package com.eboss.sbs.core;

////////////////////////////////////////////////////////////////////
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//              佛祖保佑       永无BUG     永不修改                  //
//                                                                //
//          佛曰:                                                  //
//                  写字楼里写字间，写字间里程序员；                   //
//                  程序人员写程序，又拿程序换酒钱。                   //
//                  酒醒只在网上坐，酒醉还来网下眠；                   //
//                  酒醉酒醒日复日，网上网下年复年。                   //
//                  但愿老死电脑间，不愿鞠躬老板前；                   //
//                  奔驰宝马贵者趣，公交自行程序员。                   //
//                  别人笑我忒疯癫，我笑自己命太贱；                   //
//                  不见满街漂亮妹，哪个归得程序员？                   //
////////////////////////////////////////////////////////////////////

import com.mytools.tool.utils.EncryptMD5Util;
import com.mytools.tool.utils.LogUtils;

import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**********************************************************
 * *
 * Created by wucongpeng on 2016/11/15.        *
 **********************************************************/


public class CommonFunc {




    /**
     * 排序
     * @param a
     * @return
     */
    public static ArrayList<String> getSortAsc(ArrayList<String> a) {
        String temp = "";
        int i;
        for (i = 0; i < a.size(); i++) {
            for (int j = a.size() - 1; j > i; j--) {
                if (a.get(j).compareTo(a.get(j - 1)) < 0) {
                    temp = a.get(j);
                    a.set(j, a.get(j - 1));
                    a.set(j - 1, temp);
                }
            }
        }
        return a;
    }


    /**
     * 获取到JSON字串
     * @param cmd
     * @param paramsMap
     * @return
     */
    public static String getJsonStr(String cmd, Map<String, Object> paramsMap, String sign, String key) {
        JSONObject jsonParams = null;

        ArrayList<String> keys = new ArrayList<String>();
        for (Iterator<String> it = paramsMap.keySet().iterator(); it.hasNext(); ) {
            keys.add(it.next());
        }
        String tmp = "";
        keys = CommonFunc.getSortAsc(keys);
        for (int i = 0; i < keys.size(); i++) {
            Object obj = paramsMap.get(keys.get(i));
            if (obj != null) {
                tmp = tmp + obj.toString();
            } else {
                LogUtils.e("getJsonStr", "getSortAsc obj is null");
            }
        }

        String verify = EncryptMD5Util.MD5(tmp + key);
        paramsMap.put(sign, verify);


        Map<String, Object> final_params = new HashMap<String, Object>();
        final_params.put("cmd", cmd);
        final_params.put("params", paramsMap);

        jsonParams = new JSONObject(final_params);

        return jsonParams.toString();
    }



//    public static String getNewClientSn(Context context, int PayType) {
//        String orderNo = "";
//        String device = "2"; // 1:手机 2:Pos机
//        String payType = "" + PayType;
//        String timestamp = StringUtils.getFormatCurTime();
//        String randomNum = StringUtils.createRandomNumStr(3);
//        String activateCode = getActivateCode(PayType);
//
//        orderNo = device + payType + timestamp + randomNum + activateCode;
//        return orderNo;
//    }
//
//    public static String getActivateCode(int payType) {
//        String activateCode = "";
//        String sm_type = MyApplication.getInstance().getLoginData().getScanPayType();
//        switch (payType) {
//            case Constants.PAY_WAY_CASH:
//            case Constants.PAY_WAY_FLOT:
//                activateCode = MyApplication.getInstance().getLoginData().getTerminalNo();
//                break;
//            case Constants.PAY_WAY_ALY:
//            case Constants.PAY_WAY_BFB:
//            case Constants.PAY_WAY_JD:
//            case Constants.PAY_WAY_WX:
//                if (!StringUtils.isEmpty(sm_type) && StringUtils.isEquals(sm_type, Constants.SM_TYPE_SQB)) {
//                    activateCode = MyApplication.getInstance().getLoginData().getActiveCode();
//                }else if (!StringUtils.isEmpty(sm_type) && StringUtils.isEquals(sm_type, Constants.SM_TYPE_FY)){
//                    activateCode = StringUtils.getTerminalNo(android.os.Build.SERIAL);
//                }
//                break;
//            default:
//                break;
//        }
//        return activateCode;
//    }
//
//
//    /**
//     * 备份上送的交易流水
//     *
//     * @param request
//     */
//    public static void TransUploadDataBack(TransUploadRequest request) {
//        // 先删除7天之前的数据
//        DataSupport.deleteAll(TransUploadRequest.class, "t <= ?", StringUtils.getDateFromMillis(new Date(), -7) + "");
//        if (request.save()) {
//            LogUtils.e("上送流水备份存储成功");
//        } else {
//            LogUtils.e("上送流水备份存储失败");
//        }
//    }
//
//
//    // 删除前7天的数据，保存最新7天数据
//    public static void PrinterDataDelete() {
//        Date t = StringUtils.getDateFromDate(new Date(), -7);
//        LogUtils.e(StringUtils.getDateFormate(t));
//        List<SbsPrinterData> list = DataSupport.findAll(SbsPrinterData.class);
//        for (int i = 0; i < list.size(); i++) {
//
//            if (!StringUtils.isEmpty(list.get(i).getDateTime())) {
////				LogUtils.e(list.get(i).getDateTime());
//                Date t1 = StringUtils.getDateFromString(list.get(i).getDateTime(), "yyyy-MM-dd");
//                if (t1 != null) {
////					LogUtils.e(StringUtils.getDateFormate(t1));
//                    if (t1.compareTo(t) < 0) {
//                        int deleteCount = DataSupport.deleteAll(SbsPrinterData.class, "dateTime = ?",
//                                list.get(i).getDateTime());
//                        LogUtils.e(deleteCount + "删除数据成功");
//                    }
//                }
//
//            }
//
//        }
//    }


}
